package bancosys.tec.utils.math;

import java.io.Serializable;
import java.math.BigDecimal;

import jmine.tec.annotations.Unmodifiable;

/**
 * @author Rafael Volpato (Feb 18, 2008)
 */
@Unmodifiable
public interface BigDecimalCommand extends Serializable {

    /** Instancia do comando <b>add</b>. */
    BigDecimalCommand ADD = new AddCommand();

    /** Instancia do comando <b>subtract</b>. */
    BigDecimalCommand SUBTRACT = new SubtractCommand();

    /** Instancia do comando que não faz nada. */
    BigDecimalCommand DO_NOTHING = new NoCommand();

    /**
     * Executa algum comando do BigDecimal.
     * 
     * @param num1 num1
     * @param num2 num2
     * @return o resultado do comando executado
     */
    BigDecimal execute(BigDecimal num1, BigDecimal num2);
}
